Before you turn this problem in, make sure everything runs as expected. First, restart the kernel (in the menubar, select Kernel$\rightarrow$Restart) and then run all cells (in the menubar, select Cell$\rightarrow$Run All).
Make sure you fill in any place that says YOUR CODE HERE
or "YOUR ANSWER HERE", as well as your name and collaborators below:
In [ ]:
NAME = "Ben Bitdiddle"
COLLABORATORS = "Alyssa P. Hacker"
For this problem set, we'll be using the Jupyter notebook:
In [ ]:
def squares(n):
"""Compute the squares of numbers from 1 to n, such that the
ith element of the returned list equals i^2.
"""
if n < 1:
raise ValueError
s = []
for i in range(n):
s.append(i**2)
return s
Your function should print [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
for $n=10$. Check that it does:
In [ ]:
squares(10)
In [ ]:
# """Check that squares returns the correct output for several inputs"""
# from nose.tools import assert_equal
# assert_equal(squares(1), [1])
# assert_equal(squares(2), [1, 4])
# assert_equal(squares(10), [1, 4, 9, 16, 25, 36, 49, 64, 81, 100])
# assert_equal(squares(11), [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121])
In [ ]:
In [ ]:
def sum_of_squares(n):
"""Compute the sum of the squares of numbers from 1 to n."""
total = 0
s = squares(n)
for i in range(len(s)):
total += s[i]
return total
The sum of squares from 1 to 10 should be 385. Verify that this is the answer you get:
In [ ]:
sum_of_squares(10)
In [ ]:
"""Check that sum_of_squares returns the correct answer for various inputs."""
assert_equal(sum_of_squares(1), 1)
assert_equal(sum_of_squares(2), 5)
assert_equal(sum_of_squares(10), 385)
assert_equal(sum_of_squares(11), 506)
In [ ]:
"""Check that sum_of_squares relies on squares."""
orig_squares = squares
del squares
try:
assert_raises(NameError, sum_of_squares, 1)
except AssertionError:
raise AssertionError("sum_of_squares does not use squares")
finally:
squares = orig_squares
$\sum_{i=0}^n i^2$
In [ ]:
# YOUR CODE HERE
raise NotImplementedError()